package com.dragon.modules.yuegou.entity.product;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.product.AttributeInputType;
import com.dragon.modules.yuegou.enums.product.AttributeType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.time.LocalDateTime;

/**
 * 商品规格属性表实体类<br>
 * 对应的表为：pro_attribute<br>
 * 
 * @author px
 * @date 2019-03-29 16:06:34
 * @company sgy
 * @version 2.0
 */
@TableName("pro_attribute")
@ApiModel(description = "商品规格属性表")
public class AttributeEntity {

    /**  */
	protected String id;

    /** 商品类别编号 */
	@ApiModelProperty("商品类别编号")
	protected String categoryId;

    /** [枚举]属性类型：0-规格-SPEC、1-参数-PARAM */
	@ApiModelProperty("[枚举]属性类型：0-规格-SPEC、1-参数-PARAM")
	protected AttributeType type;

    /** 属性名称 */
	@ApiModelProperty("属性名称")
	protected String attributeName;

    /** [枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE */
	@ApiModelProperty("[枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE")
	protected AttributeInputType inputType;

    /** 排序 */
	@ApiModelProperty("排序")
	protected Integer sort;

    /** 创建人ID */
	@ApiModelProperty("创建人ID")
	protected String createdBy;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 更新人ID */
	@ApiModelProperty("更新人ID")
	protected String modifiedBy;

    /** 更新时间 */
	@ApiModelProperty("更新时间")
	protected LocalDateTime modifiedTime;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

	/**
	 * 构造一个空商品规格属性表实体对象
	 */
	public AttributeEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个商品规格属性表实体对象
	 * 
	 * @param other 其它对象
	 */
	public AttributeEntity(AttributeEntity other){
		super();
     	this.id = other.id;
     	this.categoryId = other.categoryId;
     	this.type = other.type;
     	this.attributeName = other.attributeName;
     	this.inputType = other.inputType;
     	this.sort = other.sort;
     	this.createdBy = other.createdBy;
     	this.createdTime = other.createdTime;
     	this.modifiedBy = other.modifiedBy;
     	this.modifiedTime = other.modifiedTime;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
	}


	/**
	 * 获取
	 * 
	 * @return id 
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置
	 * 
	 * @param id 
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取商品类别编号
	 * 
	 * @return categoryId 商品类别编号
	 */
	public String getCategoryId() {
		return categoryId;
	}
  	
	/**
	 * 设置商品类别编号
	 * 
	 * @param categoryId 商品类别编号
	 */
	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}

	/**
	 * 获取[枚举]属性类型：0-规格-SPEC、1-参数-PARAM
	 * 
	 * @return type [枚举]属性类型：0-规格-SPEC、1-参数-PARAM
	 */
	public AttributeType getType() {
		return type;
	}
  	
	/**
	 * 设置[枚举]属性类型：0-规格-SPEC、1-参数-PARAM
	 * 
	 * @param type [枚举]属性类型：0-规格-SPEC、1-参数-PARAM
	 */
	public void setType(AttributeType type) {
		this.type = type;
	}

	/**
	 * 获取属性名称
	 * 
	 * @return attributeName 属性名称
	 */
	public String getAttributeName() {
		return attributeName;
	}
  	
	/**
	 * 设置属性名称
	 * 
	 * @param attributeName 属性名称
	 */
	public void setAttributeName(String attributeName) {
		this.attributeName = attributeName;
	}

	/**
	 * 获取[枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE
	 * 
	 * @return inputType [枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE
	 */
	public AttributeInputType getInputType() {
		return inputType;
	}
  	
	/**
	 * 设置[枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE
	 * 
	 * @param inputType [枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE
	 */
	public void setInputType(AttributeInputType inputType) {
		this.inputType = inputType;
	}

	/**
	 * 获取排序
	 * 
	 * @return sort 排序
	 */
	public Integer getSort() {
		return sort;
	}
  	
	/**
	 * 设置排序
	 * 
	 * @param sort 排序
	 */
	public void setSort(Integer sort) {
		this.sort = sort;
	}

	/**
	 * 获取创建人ID
	 * 
	 * @return createdBy 创建人ID
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取更新人ID
	 * 
	 * @return modifiedBy 更新人ID
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy 更新人ID
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取更新时间
	 * 
	 * @return modifiedTime 更新时间
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime 更新时间
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("AttributeEntity{").
			append("id=").append(id).
			append(",categoryId=").append(categoryId).
			append(",type=").append(type).
			append(",attributeName=").append(attributeName).
			append(",inputType=").append(inputType).
			append(",sort=").append(sort).
			append(",createdBy=").append(createdBy).
			append(",createdTime=").append(createdTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public AttributeEntity copy() {
		return new AttributeEntity(this);
	}

    /**  */
	public static final String COL_ID = "id";

    /** 商品类别编号 */
	public static final String COL_CATEGORY_ID = "category_id";

    /** [枚举]属性类型：0-规格-SPEC、1-参数-PARAM */
	public static final String COL_TYPE = "type";

    /** 属性名称 */
	public static final String COL_ATTRIBUTE_NAME = "attribute_name";

    /** [枚举]输入类型：0-手动输入-INPUT、1-单选-SINGLE、2-多选-MULTIPLE */
	public static final String COL_INPUT_TYPE = "input_type";

    /** 排序 */
	public static final String COL_SORT = "sort";

    /** 创建人ID */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 更新人ID */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 更新时间 */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";
}
